This application is directed to asynchronous communication between computing systems and more specifically directed to a protocol utilizing one-way communication channels. As is known, a universal asynchronous receiver/transmitter ("UART") utilizes a separate communication channel for data transmission in each direction. Each communication channel consists of a single facility in which characters are transported as sequential bits. In this mode, start and stop bits define each character since no clock information is transported with the bits. Also, the UART stores one character while awaiting that character to be read by an associated microprocessor.
Although the UART provides the basic capability to asynchronously transmit and receive one character at a time, information may be lost if a received character is not read by the associated microprocessor before the next asynchronous character is received by the UART. One method of addressing this problem is to design the system to guarantee the time required to handle each received character is not exceeded by the transmitter. Another approach involves the use of additional control lines to provide acknowledgements that a received character has been read and, as a result, the next character may be transmitted. A still further approach utilizes a buffer having a capacity equal to the message length, in which each received character is stored.
The foregoing methods, however, have inherent disadvantages such as, for example, limiting the speed of communication by slowing the transmission rate, or imposing additional hardware requirements.
As a result, there is a need for an improved asynchronous character-oriented communication protocol.